<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib prefix="c"  uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="form"  uri="http://www.springframework.org/tags/form"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">    
    <title>??</title>        
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">    
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
 </head>
 <body>
 	<!--  
		1. WHY 使用 form 标签呢 ?
		可以更快速的开发出表单页面, 而且可以更方便的进行表单值的回显
		2. 注意:
		可以通过 modelAttribute 属性指定绑定的模型属性,
		若没有指定该属性，则默认从 request 域对象中读取 command 的表单 bean
		如果该属性值也不存在，则会发生错误。
	-->
 	<form:form action="${pageContext.request.contextPath }/add" method="post"
 	
 	 modelAttribute="employee">
 		<c:if test="${ employee.id==null}">
 			lastName:<form:input path="lastName"/>
 			<!-- 错误消息定制 -->
 			<form:errors path="lastName"></form:errors>
 		</c:if>
 		<c:if test="${ employee.id!=null}">
 			<!--  这里的基本逻辑
 				1.初次进来，没有查询员工，只查询部门，所以emp为空
 				2.修改进来因为查询了员工数，所以不为空，那么修改提交应该将其隐藏
 			 -->
 			<form:hidden path="id"/>
 			<input type="hidden" name="_method" value="PUT">
 			<%-- 对于 _method 不能使用 form:hidden 标签, 因为 modelAttribute 对应的 bean 中没有 _method 这个属性 --%>
			<%-- 
			<form:hidden path="_method" value="PUT"/>--%>
 		</c:if>
 		<br>
 		email:<form:input path="email"/>
 		<form:errors path="email"></form:errors>
 		<br>
 		
 		<% Map<String, String> genders = new HashMap();
			genders.put("1", "Male");
			genders.put("0", "Female");
			request.setAttribute("genders", genders);
 		%>
 		Gender: <form:radiobuttons path="gender" items="${genders}" />
 		<br>
		Department: <form:select path="department.id" 
			items="${departments }" itemLabel="departmentName" itemValue="id"></form:select>
		<br>
		birth：<form:input path="birth"/>
		<form:errors path="birth"></form:errors>
		<br>
		salary：<form:input path="salary"/>
		<form:errors path="salary"></form:errors>
		<br>
		<input type="submit" value="submit">
 	</form:form>
 </body>
</html>